package presentacion.Modelo;

import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

import negocio.Modelo.TransferModelo;

import presentacion.Controlador.Controlador;
import presentacion.Controlador.Eventos;

public class PanelModelo extends JPanel {

	
	/**
	 * 
	 */
	private static final long serialVersionUID = 7544679412110071083L;
	private JButton nuevoModelo, eliminarModelo, buscarModelo , actualizarModelo;
	
	
	public PanelModelo(){
		
		//BOTONES Y JTEXFIELD
		this.nuevoModelo = new JButton("Nuevo Modelo");
		this.eliminarModelo = new JButton("Eliminar Modelo");
		this.buscarModelo = new JButton("Buscar Modelo");
		this.actualizarModelo = new JButton("Actualizar Modelo");
		final JTextField idMarca =  new JTextField(20);
		final JTextField modelo =  new JTextField(20);
		final JLabel nMarca =  new JLabel("ID MARCA:");
		final JLabel model =  new JLabel("ID MODELO:");

	
		this.setLayout(new GridLayout(2,2, 2,2));
		this.add(this.nuevoModelo);
		this.add(this.eliminarModelo);
		this.add(this.buscarModelo);
		this.add(this.actualizarModelo);
		

		final Controlador c = Controlador.getInstancia();		
		
		this.nuevoModelo.addActionListener(new ActionListener() {					
			@Override
			public void actionPerformed(ActionEvent arg0) {
				
				JFrame ventana = new JFrame("NUEVO MODELO");
				JButton boton =  new JButton("CREAR");
				final JLabel model =  new JLabel("NOMBRE DEL MODELO:");
				
				ventana.setLayout(new FlowLayout());
				ventana.add(nMarca);
				ventana.add(idMarca);
				ventana.add(model);
				ventana.add(modelo);
				ventana.add(boton);
				
				ventana.pack();
				ventana.setVisible(true);
				ventana.setLocationRelativeTo(null);
				
				boton.addActionListener(new ActionListener() {					
					@Override
					public void actionPerformed(ActionEvent arg0) {
						
						if(idMarca.getText().compareToIgnoreCase("")==0)
						{
						   JOptionPane.showMessageDialog(null,"No se ha introducido el id de la marca");
						}
						else if(modelo.getText().compareToIgnoreCase("")==0)
						{
						   JOptionPane.showMessageDialog(null,"No se ha introducido el nombre del modelo");	
						}
						else
						{
							try
							{
							    int id = Integer.parseInt(idMarca.getText());
								String mod = modelo.getText();
								TransferModelo tModelo = new TransferModelo(mod, id);
								c.accionModelo(Eventos.crearModelo, tModelo);
							}catch(NumberFormatException e)
							{
								 JOptionPane.showMessageDialog(null,"formato de ID de marca inadecuado");	
							}
						}
											
					}
				});				
			}
		});
		
		this.eliminarModelo.addActionListener(new ActionListener() {					
			@Override
			public void actionPerformed(ActionEvent arg0) {
				
				JFrame ventana = new JFrame("ELIMINAR MODELO");
				JButton boton =  new JButton("ELIMINAR");
				
				ventana.setLayout(new FlowLayout());
				ventana.add(model);
				ventana.add(modelo);
				ventana.add(boton);
				
				ventana.pack();
				ventana.setVisible(true);
				ventana.setLocationRelativeTo(null);
				
				boton.addActionListener(new ActionListener() {					
					@Override
					public void actionPerformed(ActionEvent arg0) {
						
						if(modelo.getText().compareToIgnoreCase("")==0)
						{
							JOptionPane.showMessageDialog(null,"No se ha introducido el id del modelo");	
						}
						else
						{
							try{
								String mod = modelo.getText();
								TransferModelo tModelo = new TransferModelo(Integer.parseInt(mod));
								c.accionModelo(Eventos.eliminarModelo, tModelo);								
							}catch(NumberFormatException e)
							{
								 JOptionPane.showMessageDialog(null,"formato de ID de modelo inadecuado");	
							}
							 
						}											
					}
				});						
			}
		});
		
		this.buscarModelo.addActionListener(new ActionListener() {					
			@Override
			public void actionPerformed(ActionEvent arg0) {
				
				JFrame ventana = new JFrame("BUSCAR MODELO");
				JButton boton =  new JButton("BUSCAR");
				
				ventana.setLayout(new FlowLayout());
				ventana.add(model);
				ventana.add(modelo);
				ventana.add(boton);
				
				ventana.pack();
				ventana.setVisible(true);
				ventana.setLocationRelativeTo(null);
				
				boton.addActionListener(new ActionListener() {					
					@Override
					public void actionPerformed(ActionEvent arg0) {
						if(modelo.getText().compareToIgnoreCase("")==0)
						{
							JOptionPane.showMessageDialog(null,"No se ha introducido el id del modelo");	
						}
						else
						{
							try{
								String mod = modelo.getText();
								TransferModelo tModelo = new TransferModelo(Integer.parseInt(mod));
								c.accionModelo(Eventos.buscarModelo, tModelo);								
							}catch(NumberFormatException e)
							{
								 JOptionPane.showMessageDialog(null,"formato de ID de modelo inadecuado");	
							}
							 
						}					
					}
				});			
			}
		});
		
		this.actualizarModelo.addActionListener(new ActionListener() {					
			@Override
			public void actionPerformed(ActionEvent arg0) {
				
				JFrame ventana = new JFrame("ACTUALIZAR MODELO");
				JButton boton =  new JButton("ACTUALIZAR");
				JLabel idM =  new JLabel("ID MODELO");
				JLabel nM = new JLabel("NUEVO NOMBRE");
				final JTextField idModelo = new JTextField(20);
				
				ventana.setLayout(new FlowLayout());
				ventana.add(nMarca);
				ventana.add(idMarca);
				ventana.add(idM);
				ventana.add(idModelo);
				ventana.add(nM);
				ventana.add(modelo);
				ventana.add(boton);
				
				ventana.pack();
				ventana.setVisible(true);
				ventana.setLocationRelativeTo(null);
				
				boton.addActionListener(new ActionListener() {					
					@Override
					public void actionPerformed(ActionEvent arg0) {
						
						if(modelo.getText().compareToIgnoreCase("")==0)
						{
							JOptionPane.showMessageDialog(null,"No se ha introducido el nombre del modelo");
						}
						else if(idMarca.getText().compareToIgnoreCase("")==0)
						{
							JOptionPane.showMessageDialog(null,"No se ha introducido el id de la marca");	
						}
						else if(idModelo.getText().compareToIgnoreCase("")==0)
						{
							JOptionPane.showMessageDialog(null,"No se ha introducido el id del modelo");
						}
						else
						{
						   try{
							   int marca = Integer.parseInt(idMarca.getText());
							   String mod = modelo.getText();
							   int modelo = Integer.parseInt(idModelo.getText());
							   TransferModelo tModelo = new TransferModelo(modelo, mod, marca);
								c.accionModelo(Eventos.actualizarModelo , tModelo);
						   }catch(NumberFormatException e)
							{
								 JOptionPane.showMessageDialog(null,"formato de ID de modelo y/o marca inadecuado");	
							}
						}					
					}
				});	
			
			}
		});		
	}
	
}
